home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / editors / emacs / xemacs / xemacs-1.003 / xemacs-1 / lib / xemacs-19.13 / i486-unknown-linuxaout1.3.21 / vcdiff < prev    next >
Encoding:
Text File  |  1995-09-01  |  1.7 KB  |  107 lines

  1. #!/bin/sh
  2. #
  3. # Enhanced sccs diff utility for use with vc mode.
  4. # This version is more compatible with rcsdiff(1).
  5. #
  6. #    !Id: vcdiff,v 1.4 1993/12/03 09:29:18 eggert Exp !
  7. #
  8. # Modified by: vladimir@Eng.Sun.COM on 95-06-07
  9. # * Made sure that file arguments are specifed as s.<filename>.
  10. # * Switched the assignments to $f inside the 3rd and 4th case statements of
  11. #   the first for-loop
  12. # * Removed the incorrect initialization of sid1 before the first for-loop.
  13. #
  14.  
  15. DIFF="diff"
  16. usage="$0: Usage: vcdiff [--brief] [-q] [-r<sid1>] [-r<sid2>] [diffopts] sccsfile..."
  17.  
  18. PATH=$PATH:/usr/ccs/bin:/usr/sccs # common SCCS hangouts
  19.  
  20. echo=
  21. sid1= sid2=
  22.  
  23. for f
  24. do
  25.     case $f in
  26.     -*)
  27.         case $f in
  28.         --brief)
  29.             DIFF=cmp;;
  30.         -q)
  31.             echo=:;;
  32.         -r?*)
  33.             case $sid1 in
  34.             -r*)
  35.                 sid2=$f
  36.                 ;;
  37.             *) 
  38.                 case $sid2 in
  39.                   ?*) echo "$usage" >&2; exit 2 ;;
  40.                 esac
  41.                 sid1=$f
  42.                 ;;
  43.             esac
  44.             ;;
  45.         *)
  46.             options="$options $f"
  47.             ;;
  48.         esac
  49.         shift
  50.         ;;
  51.     *)
  52.         break
  53.         ;;
  54.     esac
  55. done
  56.  
  57. case $# in
  58. 0)
  59.     echo "$usage" >&2
  60.     exit 2
  61. esac
  62.  
  63.  
  64. rev1= rev2= status=0
  65. trap 'status=2; exit' 1 2 13 15
  66. trap 'rm -f $rev1 $rev2 || status=2; exit $status' 0
  67.  
  68. for f
  69. do
  70.   s=2
  71.  
  72.   # For files under SCCS control, fixup the file name to be the s. filename
  73.   if [ -d SCCS ]; then
  74.     if [ $f = `echo $f | sed -e 's|SCCS/s.||'` ]; then
  75.       f="SCCS/s.$f"
  76.     fi
  77.   fi 
  78.  
  79.     case $f in
  80.     s.* | */s.*)
  81.         if
  82.             rev1=/tmp/geta$$
  83.             get -s -p -k $sid1 "$f" > $rev1 &&
  84.             case $sid2 in
  85.             '')
  86.                 workfile=`expr " /$f" : '.*/s.\(.*\)'`
  87.                 ;;
  88.             *)
  89.                 rev2=/tmp/getb$$
  90.                 get -s -p -k $sid2 "$f" > $rev2
  91.                 workfile=$rev2
  92.             esac
  93.         then
  94.             $echo $DIFF $options $sid1 $sid2 $workfile >&2
  95.             $DIFF $options $rev1 $workfile
  96.             s=$?
  97.         fi
  98.         ;;
  99.     *)
  100.         echo "$0: $f is not an SCCS file" >&2
  101.     esac
  102.  
  103.     if test $status -lt $s
  104.     then status=$s
  105.     fi
  106. done
  107.